\documentclass[12pt,a4paper]{report}
\usepackage{graphicx}
\usepackage[utf8x]{inputenc}
\usepackage[turkish]{babel}
\usepackage{fullpage}
\usepackage{multirow}

\begin{document}

\include{header}

\newpage

\begin{description}
\item[Projenin Konusu:] Uçak Takip Sistemi \\[1cm]
\end{description}
{
\bf
Vizyon Amaçları
}

\begin{itemize}

\item {

Uçak ile insan ve kargo taşıma amacıyla yapılan yolculukları ve bu yolculukları
yapan uçakları ve uçak içerisinde bulunan kişi ve kargoları takip eden bir
yazılım sistemi geliştirilmesi.

}

\item {

Uçak ile yolculuk yapmak isteyen kişilerin istedikleri tarih ve sefere uygun
seçenekleri görebilmesi.

}

\item {

Uçak ile kargo göndermek isteyen kişilerin istedikleri tarih ve sefere uygun
seçenekleri görebilmesi.

}

\item {

Yolcuların çocuk/öğrenci/yetişkin olarak ayrılması ve yolcu çeşidine göre
çeşitli ücretlendirmelerin ayarlanması.

}

\item {

Yolcular için bagaj miktarının belirlenmesi ve belirli bir limitin üstündeki
bagaj için fazladan ücret belirlenmesi.

}

\item {

Yolcu uçağındaki koltuk tipleri business ve ekonomik koltuk olarak ikiye
ayrılması, her uçakta bu koltuk tiplerinin belirlenmesi ve farklı koltuk
tiplerine farklı ücretlendirme yapılması.

}

\item {

Uçakların marka ve modellerine göre ayrı oluşturulup hepsi için ayrı pilot,
sefer, yolcu kapasitesi gibi özelliklerinin belirlenebilmesi.

}

\item {

Uçakların yolcu ve kargo listelerinin gösterilebilmesi.

}

\item {

Yolcunun biletinin iptal edilebilmesi.

}

\item {

Uçuş seferlerine rötar yazılabilmesi.

}

\item {

Yolcu ve Kargo uçakları için bilet satın alma ve rezervasyon işlemlerinin
yapılabilmesi.

}

\item {

Her uçuş, uçak ve seferler için toplam kazanılan paranın
gösterilebilmesi.

}

\item {

Herhangi bir yolcu ve pilot için herhangi bir zaman diliminde veya toplamda yapılan uçuş
listesini gösterme. \\[4cm]

}

\end{itemize}

{
\bf
Projenin Taslağı \\[0.2cm]
}

Aşağıdakiler sistemin barındıracağı maddelerdir.

\begin{itemize}

\item Uçak Ekleme/Değiştirme/Çıkartma
\item Sefer Ekleme/Değiştirme/Çıkartma
\item Uçuş Ekleme/Değiştirme/Çıkarma
\item Bilet Satın Alma/İptal Etme
\item Bilet Rezervasyonu Yapma
\item Pilot Ekleme/Değiştirme/Silme
\item Satış Elemanı Ekleme/Değiştirme/Silme \\[2cm]

\end{itemize}

{
\bf
\center
Actor-Goal Model \\[1cm]
}
\begin{tabular}{ |p{3.5cm} | p{12.5cm} |}

\hline
\bf Actor & \bf Goal \\ 
\hline
\multirow{8}{*}{Sistem Yöneticisi}
& 
Uçak Ekleme/Değiştirme/Çıkartma/listeleme ve uçuşlarını listeleme \\
&
Sefer Ekleme/Değiştirme/Çıkartma/listeleme/kazanç listeleme \\
&
Uçuş Ekleme/Değiştirme/Çıkartma/listeleme/kazanç listeleme \\
&
Pilot Ekleme/Değiştirme/Çıkartma/listeleme ve uçuşlarını listeleme \\
&
Satış Elemanı Ekleme/Değiştirme/Çıkartma/listeleme \\
&
Yolcu tipleri için indirim belirleme \\
&
Uçuşlar için rötar belirleme \\

\hline

\multirow{3}{*}{Satış Elemanı}
&
Bilet satın alma/iptal etme \\
&
Bilet rezervasyonu \\
&
Müşteri Ekleme/Değiştirme/Çıkartma \\

\hline

\multirow{2}{*}{Müşteri}
&
Bilet satın alma/iptal etme \\
&
Bilet rezervasyonu \\

\hline

\end{tabular}

\newpage

{
\bf
Yardımcı Gereksinimler: \\
}
\begin{itemize}
\item Bilet/kargo alanı satış işlemi hatasız ve güvenilir olmalı.
\item Bilet/kargo alanı satış işlemi en fazla 1 saniye sürmeli.
\item Sefer sistemi ülkeler arası saat farklarını göz önünde bulundurmalı. \\[2cm]
\end{itemize}

{
\bf
Business Rule: \\[1cm]
}
\begin{tabular}{ |p{2cm} | p{4cm} | p{6cm} | p{3cm} |}
\hline
\bf ID
&
\bf Rule
&
\bf Changeability
&
\bf Source
&
\hline
RULE1
&
Vergi kuralı. Satışlara vergi miktarı eklenmeli.
&
Vergiler devlet tarafından çıkartılan yasalara göre belirlenir.
Vergilerin değişmesi yasaların değişmesine bağlıdır. Bu süreç değişiklik
gösterebilir. Vergiler sistem yöneticisi tarafından daha sonra
değiştirilebilmelidir.
&
Hükümet
&
  
\hline

RULE2
&
Yaş kuralı. 18 yaşından küçükler yanlarında ebeveynleri olmadan uçuş
hizmetlerinden faydalanamazlar.
&
Yaş kuralı yasalar tarafından belirlenir. 18 yaş sınırının değişkenliği
fazla değildir. Bu kural sabit kabul edilebilir.
&
Hükümet
&
  
\hline
RULE3
&
Kimlik kanıtlama kuralı. Bilet işlemi yapan müşterilerin
logları tutulmalı ve bu loglar belirli sürelerin sonunda emniyete
bildirilmelidir.
&
Kimlik kanıtlama kuralı emniyete bildirme zorunluluğu olmasa dahi
daha sonra uçuş firmasının bazı durumlarda sorumluluk üstlenmemesi için
önemlidir. Kanuni durumlarda kimin, ne zaman uçtuğu belli olur.
&
 
&
  
\hline
\end{tabular}

\newpage

{
\bf
Glossary: \\[1cm]
}
\begin{tabular}{ |p{2.5cm} | p{7cm} | p{1.3cm} | p{3.5cm} | p{1.3cm} |}
\hline
\bf
Term
&
\bf
Definition and Information
&
\bf
Format
&
\bf
Validation Rules
&
\bf
Aliases
&
\hline
%Term
Müşteri
&
%Definition and Information
Bilet satış/rezervasyon işlemini satış elemanı ile yapan, 
bilet ile ilişkilendirilen uçuş müşterisidir.
&
%Format
&
%Validation Rules
&
%Aliases

&

\hline
Satış Elemanı
&
Satış elemanı, bir uçuş firması personelidir. Firma ile ilgili olan 
bilet satış ve rezervasyon gibi işlemleri yapar. Sistemin de bir
kullanıcısıdır.
&

&

&

&

\hline
%Term
Uçuş Firması
&
%Definition and Information
Sistemin tüm işlemlerinin gerçekleştiği fiziksel mekandır.
&
%Format
&
%Validation Rules
&
%Aliases
&

\hline
Rezervasyon
&
Rezervasyon işlemi, belirli bir güne kadar, belirli bir gün için, belirli bir
kişiye, belirli bir bileti (koltuk) ayırtma işlemidir.
&

&

&

&

\hline


Satış

&

Herhangi bir rezervasyon işlemini, ücret karşılığında gerçekleştirme işlemidir.
Ya da herhangi bir durumda bir biletin (koltuğun) o kişiye uçuş boyunca
verilmesi işlemidir.

&

&

&

&

\hline

Rötar

&

Uçuşun herhangi bir sebeple gecikmesi durumu. Dakika/saat/gün gibi bir
süre olarak belirtilebilir.

&

&

&

&

\hline

Kargo

&

Bir yerden bir yere taşınan ürün/mal/eşya.

&

&

&

&

\hline

Sefer

&

Sefer, belirli bir seferID'si, kalkış ve iniş havalimanı gibi bilgilere sahip 
bir çeşit güzergah tanımıdır.

&

&

&

&

\hline

Uçuş

&

Uçuş, bir sefer'in belirli bir uçak tarafından gerçekleştirilme
işlemidir.

&

&

&

&

\hline

Pilot

&

Belirli bir uçuş için, uçağı uçurmaya yetkin kişi.

&

&

&

&

\hline

Uçak

&

Uçuşların gerçekleştirildiği, yolcu/kargo taşıma işlemini 
yapan araç.

&

&

&

&

\hline

\end{tabular}

\newpage




\begin{description}
\item[Use Case 1:] Yolcu Bilet Satın Alma \\
\item[Scope:] Uçak Takip Sistemi
\item[Level:] User Goal
\item[Primary Actor:] Satış Elemanı
\item[Stakeholders and Interests:] \hspace{10 mm}
\begin{description}
\item[Satış Elemanı:] Müşteri için bilet satın almak işlemini yapmak ister. Daha
sonra bu bilet için belirlenmiş ID ile buna erişmek ister.
\item[Müşteri:] Bilet satın alma işleminin sorunsuz tamamlanmasını ister.
\end{description}
\item[Preconditions:] \hspace{10mm}
\begin{itemize}
\item Müşteri sistemde kayıtlı olmalı.
\item Satış Elemanı sisteme kayıtlı ve sisteme giriş yapmış olmalı.
\item Sistemde en az 1 adet uçuş tanımlı olmalı.
\end{itemize}
\item[Postconditions:] \hspace{10mm}
\begin{itemize}
\item Müşterinin bileti sisteme kaydedilmiş olmalı, bilet satın alma işlemi 
tamamlanmış olmalı.
\end{itemize}
\item[Main Success Scenario (or Basic Flow):] \hspace{10mm}
\begin{enumerate}
\item Müşteri havalimanına Kimlik No ile gelir ve Satış Elemanına talebini iletir.
\item Satış Elemanı, sisteme yeni bilet satışı için istek gönderir.
\item Sistem, Satış Elemanından biletin alınacağı tarihi ister.
\item Satış Elemanı, müşteriden aldığı tarih bilgisini sisteme girer.
\item Sistem, o tarihteki uygun boş yer olan uçuşları listeler.
\item Satış Elemanı, müşterinin isteğine uygun uçuşu seçer.
\item Sistem, o uçuşla ilgili boş koltukları listeler ve bagaj bilgisini ister.
\item Satış Elemanı, müşterinin isteğine uygun koltuk ve bagaj bilgisini 
sisteme girer.
\item Sistem ücreti gösterir.
\item Satış Elemanı, müşteriden ödeme yapmasını ister ve bilet satın alma işlemini
bitirir.
\end{enumerate}
\item[Extensions (or Alternative Flows):] \hspace{10mm}
\begin{itemize}
\item[*a] Senaryodaki herhangi bir ölümcül hatada:
    \begin{enumerate}
    \item Bütün işlemler iptal edilip her şey baştan yazılır.
    \end{enumerate}
\item[5a.] Belirtilen tarihte uygun uçuş yoksa:
    \begin{enumerate}
    \item Müşteriden başka uygun tarih istenir.
    \end{enumerate}
\end{itemize}
\end{description}

\newpage

\begin{description}
\item[Contract 1:] Yolcu bilet satış işlemini başlat 
\item[Operation:] YolcuBiletSatisIsleminiBaslat(yolcuKimlikNo)
\item[Cross References:] Use cases: Yolcu Bilet Satın Alma
\item[Preconditions:] Yok
\item[Post Conditions:] \hspace{10 mm}
\begin{itemize} 
\item YolcuBilet sınıfının nesnesi b oluşturulmuş olmalı.
\item b nin özellikleri başlatılmış olmalı.
\item b nesnesinin musteri ozelligi, parametre olarak gelen yolcuKimlikNo'nun
gosterdigi musteri nesnesi ile doldurulmus olmalı. \\
\end{itemize}
\end{description}

\begin{description}
\item[Contract 2:] Tarih secme 
\item[Operation:] yolcuTarihSec(tarih)
\item[Cross References:] Use cases: Yolcu Bilet Satın Alma
\item[Preconditions:] Yolcu bilet satış işlemi başlamış olmalı.
\item[Post Conditions:] \hspace{10 mm}
\begin{itemize} 
\item İlgili bilet nesnesinin tarih özelliği 
parametre olarak gelen tarih ile ilişkilendirilmeli. \\
\end{itemize}
\end{description}

\begin{description}
\item[Contract 3:] Uçuş secme 
\item[Operation:] yolcuUcusSec(ucusID)
\item[Cross References:] Use cases: Yolcu Bilet Satın Alma
\item[Preconditions:] Yolcu bilet satış işlemi başlamış olmalı.
\item[Post Conditions:] \hspace{10 mm}
\begin{itemize} 
\item İlgili bilet nesnesinin uçuş özelliği
parametre olarak gelen ucusID'nin gösterdiği ucus nesnesi
ile ilişkilendirilmeli. \\
\end{itemize}
\end{description}

\begin{description}
\item[Contract 4:] Koltuk ve bagaj secme
\item[Operation:] koltukVeBagajSec(koltukID, bagaj)
\item[Cross References:] Use cases: Yolcu Bilet Satın Alma
\item[Preconditions:] Yolcu bilet satış işlemi başlamış olmalı.
\item[Post Conditions:] \hspace{10 mm}
\begin{itemize} 
\item İlgili bilet nesnesinin koltuk özelliği
parametre olarak gelen koltukID ile ilişkilendirilmiş olmalı.
\item İlgili bilet nesnesinin bagaj özelliği
parametre olarak gelen bagaj ile ilişkilendirilmiş olmalı. \\
\end{itemize}
\end{description}

\begin{description}
\item[Contract 5:] Satış işlemini bitir
\item[Operation:] yolcuSatisIsleminiBitir()
\item[Cross References:] Use cases: Yolcu Bilet Satın Alma
\item[Preconditions:] Yolcu bilet satış işlemi başlamış olmalı.
\item[Post Conditions:] \hspace{10 mm}
\begin{itemize} 
\item İlgili bilet nesnesinin tamamlandimi özelliği
doğru olarak belirlenmeli. 
\item b, biletCatalog nesnesiyle ilişkilendirilmiş olmalı. \\
\end{itemize}
\end{description}



%%\includegraphics{dia/YolcuBiletSatinAlmaDomain.png}

\newpage

\begin{description}
\item[Use Case 2:] Kargo Bileti Satın Alma \\
\item[Scope:] Uçak Takip Sistemi
\item[Level:] User Goal
\item[Primary Actor:] Satış Elemanı
\item[Stakeholders and Interests:] \hspace{10 mm}
\begin{description}
\item[Satış Elemanı:] Müşteri için bilet satın almak işlemini yapmak ister. Daha
sonra bu bilet için belirlenmiş ID ile buna erişmek ister.
\item[Müşteri:] Bilet satın alma işleminin sorunsuz tamamlanmasını ister.
\end{description}
\item[Preconditions:] \hspace{10mm}
\begin{itemize}
\item Müşteri sistemde kayıtlı olmalı.
\item Satış Elemanı sisteme kayıtlı ve sisteme giriş yapmış olmalı.
\item Sistemde en az 1 adet uçuş tanımlı olmalı.
\end{itemize}
\item[Postconditions:] \hspace{10mm}
\begin{itemize}
\item Müşterinin bileti sisteme kaydedilmiş olmalı, bilet satın alma işlemi 
tamamlanmış olmalı.
\end{itemize}
\item[Main Success Scenario (or Basic Flow):] \hspace{10mm}
\begin{enumerate}
\item Müşteri, Kimlik No ile havalimanına gelir ve Satış Elemanına talebini iletir.
\item Satış Elemanı, sisteme yeni bilet satışı için istek gönderir.
\item Sistem, Satış Elemanından biletin alınacağı tarihi ister.
\item Satış Elemanı, müşteriden aldığı tarih bilgisini sisteme girer.
\item Sistem, o tarihteki uygun boş yer olan uçuşları listeler.
\item Satış Elemanı, müşterinin isteğine uygun uçuşu seçer.
\item Sistem, o uçuşla ilgili boş hacmi gösterir.
\item Satış Elemanı, müşterinin isteğine uygun kargo hacmini sisteme girer.
\item Sistem ücreti gösterir.
\item Satış Elemanı, müşteriden ödeme yapmasını ister ve bilet satın alma işlemini
bitirir.
\end{enumerate}
\item[Extensions (or Alternative Flows):] \hspace{10mm}
\begin{itemize}
\item[*a] Senaryodaki herhangi bir ölümcül hatada:
    \begin{enumerate}
    \item Bütün işlemler iptal edilip her şey baştan yazılır.
    \end{enumerate}
\item[5a.] Belirtilen tarihte uygun uçuş yoksa:
    \begin{enumerate}
    \item Müşteriden başka uygun tarih istenir.
    \end{enumerate}
\item[7a.] Seçilen uçuşnde müşteri için yeterli miktarda boş hacim
yoksa:
    \begin{enumerate}
    \item Müşteriden başka bir uçuş istenir.
    \end{enumerate}
\end{itemize}
\end{description}

\newpage

\begin{description}
\item[Contract 1:] Kargo bilet satış işlemini başlat 
\item[Operation:] KargoBiletSatisİsleminiBaslat(yolcuKimlikNo)
\item[Cross References:] Use cases: Kargo Bilet Satın Alma
\item[Preconditions:] Yok
\item[Post Conditions:] \hspace{10 mm}
\begin{itemize} 
\item Bilet sınıfının nesnesi b oluşturulmuş olmalı.
\item b nin özellikleri başlatılmış olmalı.
\item Musteri nesnesi parametre olarak gelen yolcuKimlikNo özelliği ile doldurulmuş olmalı.\\
\end{itemize}
\end{description}

\begin{description}
\item[Contract 2:] Tarih secme 
\item[Operation:] tarihSec(tarih)
\item[Cross References:] Use cases: Kargo Bilet Satın Alma
\item[Preconditions:] Kargo bilet satış işlemi başlamış olmalı.
\item[Post Conditions:] \hspace{10 mm}
\begin{itemize} 
\item İlgili bilet nesnesinin tarih özelliği 
parametre olarak gelen tarih ile ilişkilendirilmeli. \\
\end{itemize}
\end{description}

\begin{description}
\item[Contract 3:] Uçuş secme 
\item[Operation:] ucusSec(ucusID)
\item[Cross References:] Use cases: Kargo Bilet Satın Alma
\item[Preconditions:] Kargo bilet satış işlemi başlamış olmalı.
\item[Post Conditions:] \hspace{10 mm}
\begin{itemize} 
\item İlgili bilet nesnesinin ucus özelliği
parametre olarak gelen ucusID'nin gösterdiği ucus nesnesi ile
ilişkilendirilmeli. \\
\end{itemize}
\end{description}

\begin{description}
\item[Contract 4:] Kargo alan belirle
\item[Operation:] kargoAlanBelirle(hacim)
\item[Cross References:] Use cases: Kargo Bilet Satın Alma
\item[Preconditions:] Kargo bilet satış işlemi başlamış olmalı.
\item[Post Conditions:] \hspace{10 mm}
\begin{itemize} 
\item İlgili bilet nesnesinin hacim özelliği
parametre olarak gelen hacim ile ilişkilendirilmiş olmalı.\\
\end{itemize}
\end{description}

\begin{description}
\item[Contract 5:] Satış işlemini bitir
\item[Operation:] satisIsleminiBitir()
\item[Cross References:] Use cases: Kargo Bilet Satın Alma
\item[Preconditions:] Kargo bilet satış işlemi başlamış olmalı.
\item[Post Conditions:] \hspace{10 mm}
\begin{itemize} 
\item İlgili bilet nesnesinin tamamlandimi özelliği
doğru olarak belirlenmeli.
\item b, biletCatalog nesnesiyle ilişkilendirilmiş olmalı.\\
\end{itemize}
\end{description}
%%\includegraphics{dia/KargoBiletSatinAlmaDomain.png}

\newpage

\begin{description}
\item[Use Case 3:] Uçuş Oluşturma \\
\item[Scope:] Uçak Takip Sistemi
\item[Level:] User Goal
\item[Primary Actor:] Sistem Yöneticisi
\item[Stakeholders and Interests:] \hspace{10 mm}
\begin{description}
\item[Sistem Yöneticisi:] Uçağı ilgili sefere ekleyip yeni bir uçuş
oluşturma işleminin tamamlanmasını bekler.
\end{description}
\item[Preconditions:] \hspace{10mm}
\begin{itemize}
\item Sistem yöneticisi sistemde ekli ve giriş yapmış olmalı.
\item Uçak sistemde kayıtlı olmalı.
\item Sefer sistemde kayıtlı olmalı.
\end{itemize}
\item[Postconditions:] \hspace{10mm}
\begin{itemize}
\item Uçuş sisteme başarıyla eklenmiş olmalı.
\end{itemize}
\item[Main Success Scenario (or Basic Flow):] \hspace{10mm}
\begin{enumerate}
\item Sistem Yöneticisi yeni uçuş talebini sisteme iletir.
\item Sistem, uçuş tipini ister.
\item Sistem Yöneticisi, uçuş tipini girer
\item Sistem, ucusID ister.
\item Sistem Yöneticisi, ucusID girer.
\item Sistem, uygun seferleri listeler.
\item Sistem Yöneticisi, seferi seçer.
\item Sistem, uçuş için tarih ister.
\item Sistem Yöneticisi, tarihi girer.
\item Sistem, sefere uygun uçakları listeler.
\item Sistem Yöneticisi, uçağı seçer.
\item Sistem, uçuş tipine göre ilgili uçakta olan tüm koltuk tipleri için
fiyat veya hacim miktarının girilmesini ister.
\item Sistem Yöneticisi, koltuk tipleri için fiyat veya hacim miktarını girer.
\item Sistem, uçak için uygun pilotları listeler ve bir tane ister.
\item Sistem yöneticisi pilotu seçer.
\item Sistem bilgileri gösterir ve onay bekler.
\item Sistem Yöneticisi bilgileri onaylar ve işlemi bitirir. \\[3cm]
\end{enumerate}
\item[Extensions (or Alternative Flows):] \hspace{10mm}
\begin{itemize}
\item[*a] Senaryodaki herhangi bir ölümcül hatada:
    \begin{enumerate}
    \item Bütün işlemler iptal edilip her şey baştan yazılır.
    \end{enumerate}
\item[5a.] Aynı ID'li başka bir uçuş varsa
    \begin{enumerate}
    \item Sistem, başka bir uçuş idsi girilmesini ister.
    \end{enumerate}
\item[6a.] Uçuş tipine uygun sefer yoksa:
    \begin{enumerate}
    \item Sistem, başka bir uçuş tipi girilmesini ister.
    \end{enumerate}
\item[10a.] Sefer için uygun uçak yoksa:
    \begin{enumerate}
    \item Sistem, başka bir sefer girilmesini ister.
    \end{enumerate}
\end{itemize}
\end{description}

\newpage

\begin{description}
\item[Contract 1:] Uçuş ekleme işlemini başlat 
\item[Operation:] ucusEklemeIsleminiBaslat(ucusTipi)
\item[Cross References:] Use cases: Ucus Oluşturma
\item[Preconditions:] Yok
\item[Post Conditions:] \hspace{10 mm}
\begin{itemize} 
\item Gelen ucusTipi parametresine göre YolcuUcus nesnesi (u) ya da 
KargoUcus nesnesi (u) olusturulmus olmalı.
\end{itemize}
\end{description}

\begin{description}
\item[Contract 2:] Uçuş ID belirleme 
\item[Operation:] ucusIDSec(ucusID)
\item[Cross References:] Use cases: Uçuş Oluşturma
\item[Preconditions:] Uçuş Oluşturma işlemi başlamış olmalı.
\item[Post Conditions:] \hspace{10 mm}
\begin{itemize} 
\item İlgili ucus nesnesinin ucusID özelliği 
parametre olarak gelen ucusID ile ilişkilendirilmeli. \\
\end{itemize}
\end{description}

\begin{description}
\item[Contract 3:] Sefer secme 
\item[Operation:] seferSec(seferID)
\item[Cross References:] Use cases: Uçuş Olusturma
\item[Preconditions:] Uçuş oluşturma işlemi başlamış olmalı.
\item[Post Conditions:] \hspace{10 mm}
\begin{itemize} 
\item İlgili ucus nesnesinin sefer özelliği parametre olarak gelen seferID'nin
gösterdiği sefer nesnesi ile ilişkilendirilmeli. \\
\end{itemize}
\end{description}

\begin{description}
\item[Contract 4:] Tarih Seçme
\item[Operation:] tarihSec(tarih)
\item[Cross References:] Use cases: Uçuş Oluşturma
\item[Preconditions:] Uçuş Oluşturma işlemi başlamış olmalı.
\item[Post Conditions:] \hspace{10 mm}
\begin{itemize} 
\item İlgili ucus nesnesinin tarih
özelliği parametre olarak gelen tarih ile ilişkilendirilmiş olmalı. \\
\end{itemize}
\end{description}

\begin{description}
\item[Contract 5:] Uçak Seçme
\item[Operation:] ucakSec(ucakID)
\item[Cross References:] Use cases: Uçuş Oluşturma
\item[Preconditions:] Uçuş Oluşturma işlemi başlamış olmalı.
\item[Post Conditions:] \hspace{10 mm}
\begin{itemize} 
\item İlgili ucus nesnesinin ucak
özelliği parametre olarak gelen ucakID'nin gösterdiği ucak ile
ilişkilendirilmiş olmalı. \\
\end{itemize}
\end{description}

\begin{description}
\item[Contract 6:] Fiyat belirle
\item[Operation:] fiyatBelirle(fiyatlar)
\item[Cross References:] Use cases: Uçuş Oluşturma
\item[Preconditions:] Uçuş Oluşturma işlemi başlamış olmalı.
\item[Post Conditions:] \hspace{10 mm}
\begin{itemize} 
\item İlgili ucus nesnesinin
koltukFiyatlari özelliği parametre olarak gelen fiyatlar ile ilişkilendirilmiş olmalı.\\
\end{itemize}
\end{description}

\begin{description}
\item[Contract 7:] Pilot belirle
\item[Operation:] PilotBelirle(pilotID)
\item[Cross References:] Use cases: Uçuş Oluşturma
\item[Preconditions:] Uçuş Oluşturma işlemi başlamış olmalı.
\item[Post Conditions:] \hspace{10 mm}
\begin{itemize} 
\item İlgili ucus nesnesinin
pilot özelliği parametre olarak gelen pilotID'nin gösterdiği pilot nesnesi
ile ilişkilendirilmiş olmalı. \\
\end{itemize}
\end{description}

\begin{description}
\item[Contract 8:] Kayit işlemini bitir
\item[Operation:] kayitIsleminiBitir()
\item[Cross References:] Use cases: Uçuş Oluşturma
\item[Preconditions:] Uçuş Oluşturma işlemi başlamış olmalı.
\item[Post Conditions:] \hspace{10 mm}
\begin{itemize} 
\item İlgili ucus nesnesinin
tamamlandimi özelliği doğru olarak belirlenmeli. 
\item u, UcusCatalog nesnesiyle ilişkilendirilmiş olmalı. \\
\end{itemize}
\end{description}
%%\includegraphics{dia/UcusSeferiOlusturmaDomain.png}

\newpage

\begin{description}
\item[Use Case 4:] Müşteri Ekleme \\
\item[Scope:] Uçak Takip Sistemi
\item[Level:] User Goal
\item[Primary Actor:] Satış Elemanı
\item[Stakeholders and Interests:] \hspace{10 mm}
\begin{description}
\item[Satış Elemanı:] Müşterinin doğru bir şekilde eklenmiş olmasını
bekler.
\end{description}
\item[Preconditions:] \hspace{10mm}
\begin{itemize}
\item Satış Elemanı sistemde ekli ve giriş yapmış olmalı.
\end{itemize}
\item[Postconditions:] \hspace{10mm}
\begin{itemize}
\item Müşteri sisteme başarıyla eklenmiş olmalı.
\end{itemize}
\item[Main Success Scenario (or Basic Flow):] \hspace{10mm}
\begin{enumerate}
\item Müşteri, kayıt talebi için Kimlik Numarası ile Satış Elemanına talebini
iletir.
\item Satış Elemanı, yeni müşteri kayıt işlemini başlatır.
\item Sistem, müşteri bilgilerini ister.
\item Satış Elemanı, müşteriden aldığı bilgileri sisteme girer.
\item Sistem, bilgileri gösterir ve onay ister.
\item Satış Elemanı, bilgileri onaylar ve işlemi bitirir.
\end{enumerate}
\item[Extensions (or Alternative Flows):] \hspace{10mm}
\begin{itemize}
\item[*a] Senaryodaki herhangi bir ölümcül hatada:
    \begin{enumerate}
    \item Bütün işlemler iptal edilip her şey baştan yazılır.
    \end{enumerate}
\item[2a.] Aynı Kimlik Numaralı başka bir müşteri varsa:
    \begin{enumerate}
    \item Sistem, hata verir ve işlemi sonlandırır.
    \end{enumerate}
\item[4a.] Müşteri bilgileri eksik veya yanlış ise:
    \begin{enumerate}
    \item Sistem, gerekli bilgilerin tekrar girilmesini ister.
    \end{enumerate}
\end{itemize}
\end{description}

\newpage

%%\includegraphics{dia/MusteriEklemeDomain.png}

\newpage

\begin{description}
\item[Use Case 5:] Satış Elemanı Ekleme \\
\item[Scope:] Uçak Takip Sistemi
\item[Level:] User Goal
\item[Primary Actor:] Sistem Yöneticisi
\item[Stakeholders and Interests:] \hspace{10 mm}
\begin{description}
\item[Sistem Yöneticisi:] Satış Elemanının doğru bir şekilde eklenmiş olmasını
bekler.
\end{description}
\item[Preconditions:] \hspace{10mm}
\begin{itemize}
\item Sistem Yöneticisi sistemde ekli ve giriş yapmış olmalı.
\end{itemize}
\item[Postconditions:] \hspace{10mm}
\begin{itemize}
\item Satış Elemanı sisteme başarıyla eklenmiş olmalı.
\end{itemize}
\item[Main Success Scenario (or Basic Flow):] \hspace{10mm}
\begin{enumerate}
\item Satış Elemanı, kayıt talebi için Kimlik Numarası ile Sistem Yöneticisine talebini
iletir.
\item Sistem Yöneticisi, yeni satış elemanı kayıt işlemini başlatır.
\item Sistem, Satış Elemanı bilgilerini ister.
\item Sistem Yöneticisi, Satış Elemanından aldığı bilgileri sisteme girer.
\item Sistem, bilgileri gösterir ve onay ister.
\item Sistem Yöneticisi, bilgileri onaylar ve işlemi bitirir.
\end{enumerate}
\item[Extensions (or Alternative Flows):] \hspace{10mm}
\begin{itemize}
\item[*a] Senaryodaki herhangi bir ölümcül hatada:
    \begin{enumerate}
    \item Bütün işlemler iptal edilip her şey baştan yazılır.
    \end{enumerate}
\item[2a.] Aynı Kimlik Numaralı başka bir satış elemanı varsa:
    \begin{enumerate}
    \item Sistem, hata verir ve işlemi sonlandırır.
    \end{enumerate}
\item[4a.] Satış elemanı bilgileri eksik veya yanlış ise:
    \begin{enumerate}
    \item Sistem, gerekli bilgilerin tekrar girilmesini ister.
    \end{enumerate}
\end{itemize}
\end{description}

\newpage

%%\includegraphics{dia/SatisElemaniEklemeDomain.png}

\newpage

\begin{description}
\item[Use Case 6:] Pilot Ekleme \\
\item[Scope:] Uçak Takip Sistemi
\item[Level:] User Goal
\item[Primary Actor:] Sistem Yöneticisi
\item[Stakeholders and Interests:] \hspace{10 mm}
\begin{description}
\item[Sistem Yöneticisi:] Pilotun doğru bir şekilde eklenmiş olmasını
bekler.
\end{description}
\item[Preconditions:] \hspace{10mm}
\begin{itemize}
\item Sistem Yöneticisi sistemde ekli ve giriş yapmış olmalı.
\end{itemize}
\item[Postconditions:] \hspace{10mm}
\begin{itemize}
\item Pilot sisteme başarıyla eklenmiş olmalı.
\end{itemize}
\item[Main Success Scenario (or Basic Flow):] \hspace{10mm}
\begin{enumerate}
\item Pilot, kayıt talebi için Kimlik Numarası ile Sistem Yöneticisine talebini
iletir.
\item Sistem Yöneticisi, yeni pilot kayıt işlemini başlatır.
\item Sistem, Pilot bilgilerini ister.
\item Sistem Yöneticisi, pilottan aldığı bilgileri sisteme girer.
\item Sistem, bilgileri gösterir ve onay ister.
\item Sistem Yöneticisi, bilgileri onaylar ve işlemi bitirir.
\end{enumerate}
\item[Extensions (or Alternative Flows):] \hspace{10mm}
\begin{itemize}
\item[*a] Senaryodaki herhangi bir ölümcül hatada:
    \begin{enumerate}
    \item Bütün işlemler iptal edilip her şey baştan yazılır.
    \end{enumerate}
\item[2a.] Aynı Kimlik Numaralı başka bir pilot varsa:
    \begin{enumerate}
    \item Sistem, hata verir ve işlemi sonlandırır.
    \end{enumerate}
\item[4a.] Pilot bilgileri eksik veya yanlış ise:
    \begin{enumerate}
    \item Sistem, gerekli bilgilerin tekrar girilmesini ister.
    \end{enumerate}
\end{itemize}
\end{description}

\newpage

%%\includegraphics{dia/PilotEklemeDomain.png}

\newpage

\begin{description}
\item[Use Case 7:] Uçak Ekleme \\
\item[Scope:] Uçak Takip Sistemi
\item[Level:] User Goal
\item[Primary Actor:] Sistem Yöneticisi
\item[Stakeholders and Interests:] \hspace{10 mm}
\begin{description}
\item[Sistem Yöneticisi:] Uçağın doğru bir şekilde eklenmiş olmasını
bekler.
\end{description}
\item[Preconditions:] \hspace{10mm}
\begin{itemize}
\item Sistem Yöneticisi sistemde ekli ve giriş yapmış olmalı.
\end{itemize}
\item[Postconditions:] \hspace{10mm}
\begin{itemize}
\item Uçak sisteme başarıyla eklenmiş olmalı.
\end{itemize}
\item[Main Success Scenario (or Basic Flow):] \hspace{10mm}
\begin{enumerate}
\item Sistem Yöneticisi, yeni uçak kayıt işlemini başlatır.
\item Sistem, uçak tipini ister.
\item Sistem Yöneticisi, uçak tipini girer.
\item Sistem, diğer uçak bilgilerini ister.
\item Sistem Yöneticisi, uçak bilgilerini girer.
\item Sistem, uçak bilgilerini gösterir ve onay ister.
\item Sistem Yöneticisi bilgileri onaylar ve işlemi sonlandırır.
\end{enumerate}
\item[Extensions (or Alternative Flows):] \hspace{10mm}
\begin{itemize}
\item[*a] Senaryodaki herhangi bir ölümcül hatada:
    \begin{enumerate}
    \item Bütün işlemler iptal edilip her şey baştan yazılır.
    \end{enumerate}
\item[3a.] Aynı ID'li başka bir uçak varsa:
    \begin{enumerate}
    \item Sistem, hata verir ve işlemi sonlandırır.
    \end{enumerate}
\item[5a.] Uçak bilgileri eksik veya yanlış ise:
    \begin{enumerate}
    \item Sistem, gerekli bilgilerin tekrar girilmesini ister.
    \end{enumerate}
\end{itemize}
\end{description}

\newpage

%%\includegraphics{dia/UcakEklemeDomain.png}

%%\newpage

\begin{description}
\item[Use Case 8:] Sefer Ekleme \\
\item[Scope:] Uçak Takip Sistemi
\item[Level:] User Goal
\item[Primary Actor:] Sistem Yöneticisi
\item[Stakeholders and Interests:] \hspace{10 mm}
\begin{description}
\item[Sistem Yöneticisi:] Seferin doğru bir şekilde eklenmiş olmasını
bekler.
\end{description}
\item[Preconditions:] \hspace{10mm}
\begin{itemize}
\item Sistem Yöneticisi sistemde ekli ve giriş yapmış olmalı.
\end{itemize}
\item[Postconditions:] \hspace{10mm}
\begin{itemize}
\item Sefer sisteme başarıyla eklenmiş olmalı.
\end{itemize}
\item[Main Success Scenario (or Basic Flow):] \hspace{10mm}
\begin{enumerate}
\item Sistem Yöneticisi, yeni sefer kayıt işlemini başlatır.
\item Sistem, sefer ID'si ister.
\item Sistem Yöneticisi, sefer ID'sini girer.
\item Sistem, Kalkış ve İniş Havalimanını ister.
\item Sistem Yöneticisi, Kalkış ve İniş Havalimanını girer.
\item Sistem, diğer sefer bilgilerini ister.
\item Sistem Yöneticisi, diğer bilgileri girer.
\item Sistem, sefer bilgilerini görüntüler ve onay ister.
\item Sistem Yöneticisi, bilgileri onaylar ve işlemi sonlandırır.
\end{enumerate}
\item[Extensions (or Alternative Flows):] \hspace{10mm}
\begin{itemize}
\item[*a] Senaryodaki herhangi bir ölümcül hatada:
    \begin{enumerate}
    \item Bütün işlemler iptal edilip her şey baştan yazılır.
    \end{enumerate}
\item[3a.] Aynı ID'li başka bir sefer varsa:
    \begin{enumerate}
    \item Sistem, hata verir ve işlemi sonlandırır.
    \end{enumerate}
\item[5a.] Kalkış ve İniş Havalimanı aynıysa veya uygun değilse:
    \begin{enumerate}
    \item Sistem, hata verir ve başka bir havalimanı ister.
    \end{enumerate}
\item[7a.] Sefer bilgileri eksik veya yanlış ise:
    \begin{enumerate}
    \item Sistem, gerekli bilgilerin tekrar girilmesini ister.
    \end{enumerate}
\end{itemize}
\end{description}

\newpage

%%\includegraphics{dia/SeferEklemeDomain.png}

%%\newpage

\begin{description}
\item[Use Case 9:] Havalimanı Ekleme \\
\item[Scope:] Uçak Takip Sistemi
\item[Level:] User Goal
\item[Primary Actor:] Sistem Yöneticisi
\item[Stakeholders and Interests:] \hspace{10 mm}
\begin{description}
\item[Sistem Yöneticisi:] Havalimanının doğru bir şekilde eklenmiş olmasını
bekler.
\end{description}
\item[Preconditions:] \hspace{10mm}
\begin{itemize}
\item Sistem Yöneticisi sistemde ekli ve giriş yapmış olmalı.
\end{itemize}
\item[Postconditions:] \hspace{10mm}
\begin{itemize}
\item Havalimanı sisteme başarıyla eklenmiş olmalı.
\end{itemize}
\item[Main Success Scenario (or Basic Flow):] \hspace{10mm}
\begin{enumerate}
\item Sistem Yöneticisi, yeni havalimanı kayıt işlemini başlatır.
\item Sistem, havalimanı ID'si ister.
\item Sistem Yöneticisi, havalimanı ID'sini girer.
\item Sistem, Havalimanı bilgilerini ister.
\item Sistem Yöneticisi, Havalimanı bilgilerini girer.
\item Sistem, havalimanı bilgilerini görüntüler ve onay ister.
\item Sistem Yöneticisi, bilgileri onaylar ve işlemi sonlandırır.
\end{enumerate}
\item[Extensions (or Alternative Flows):] \hspace{10mm}
\begin{itemize}
\item[*a] Senaryodaki herhangi bir ölümcül hatada:
    \begin{enumerate}
    \item Bütün işlemler iptal edilip her şey baştan yazılır.
    \end{enumerate}
\item[3a.] Aynı ID'li başka bir havalimanı varsa:
    \begin{enumerate}
    \item Sistem, hata verir ve işlemi sonlandırır.
    \end{enumerate}
\item[5a.] Havalimanı bilgileri eksik veya yanlış ise:
    \begin{enumerate}
    \item Sistem, gerekli bilgilerin tekrar girilmesini ister.
    \end{enumerate}
\end{itemize}
\end{description}

\newpage
%%\begin{center}
%%\includegraphics{dia/HavalimaniEklemeDomain.png}
%%\end{center}
%%\newpage


\begin{center}
\bf \large Use-Case Model \\[2cm]

\includegraphics{dia/usecasemodel.png}
\end{center}

\end{document}
